added SSCLI 1.0
[windows-sources.git] / shared source / wpf / src / host / shimimpl / watsonreporting.hxx
blob7c7040004b1368127c1f1eb87e98841b72167dcc
1 //+-----------------------------------------------------------------------
2 //
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 //
5 // Description:
6 // Custom Watson reporting for problems encountered during DocObject activation
7 //
8 // All problems detected (at least initially) stem from ACCESS DENIED errors when accessing
9 // certain registry keys or file locations. We get these while normal applications don't because
10 // our process runs with a restricted token: in particular, the Local Administrators SID is
11 // removed. Normally, registry keys and file locations associated with a user's profile give
12 // that user's account explicit Full Access permission. The same permission is given to the
13 // Administrators group. On some Windows XP computers, however, the ACL for the user's account
14 // is lost or it shows some unresolved SID--probably result of profile/account migration and/or
15 // OS upgrade. When a normal process runs, the user gets access via the Administrators group
16 // membership.
18 // The purpose of the Watson reporting is to lead users of affected computers to a KB article
19 // and possibly a patch utility to resolve the problem. Otherwise they are left with just a
20 // blank browser window. Or, in some cases, infinite relaunching of PresHost and IE happens.
22 // History:
23 // 2007/07/20 [....] Created
24 // 2007/09/20 [....] Ported Windows->DevDiv. See SourcesHistory.txt.
26 //------------------------------------------------------------------------
28 #pragma once
30 #include "..\shared\WatsonReportingShared.hxx"
32 // Our 'generic' event registered with Watson:
33 // http://watson/Madlib.aspx?MadlibId=GenericEventTypeParams&EventTypeName=WPFHostActivationProblem
34 #define ACTIVATION_PROBLEM_WATSON_EVENT L"WPFHostActivationProblem"
36 // Values for P4 in the manifest report
37 namespace ActivationProblemIds
39 LPCWSTR const
40 HKCUClassesAccessDenied = L"HKCU Classes Access Denied",
41 AppDataFolderAccessDenied = L"AppData Folder Access Denied",
42 IPersistMonikerMarshalingFailed = L"IPersistMoniker Marshaling";
45 void TriggerWatson(LPCWSTR problemId);
47 HRESULT CheckRegistryAccess();
48 HRESULT CheckAppDataFolderAccess();